import { fileURLToPath, URL } from "node:url";

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
const PrerenderSPAPlugin = require("prerender-spa-plugin");
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer;
const path = require("path");
// http://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      "@": fileURLToPath(new URL("./src", import.meta.url)),
    },
  },
  devServer: {
    // port: port, // 端口号
    open: true, // 是否自动打开浏览器

    // 代理跨域的配置 【仅限于在开发环境下有效果】
    // proxy: {
    //   "/login": {
    //     target: "https://api.6ocbx.com/", //!本地
    //     changeOrigin: true,
    //     pathRewrite: {
    //       // "/login": "",
    //     },
    //   },
    // },
  },
  configureWebpack: (config) => {
    if (process.env.NODE_ENV !== "production") return;
    return {
      plugins: [
        new PrerenderSPAPlugin({
          //网页包的路径将应用程序输出到prerender
          staticDir: path.join(__dirname, "dist"),
          //Routes to render 对应自己router
          routes: ["/webseo"],
          renderer: new Renderer({
            inject: {
              foo: "bar",
            },
            //渲染时显示浏览器窗口。对调试有用。
            headless: false,
            // // 在 main.js 中 document.dispatchEvent(new Event('render-event'))，两者的事件名称要对应上。
            renderAfterDocumentEvent: "render-event",
          }),
        }),
      ],
    };
  },
});

// module.exports = {
//   configureWebpack: (config) => {
//     if (process.env.NODE_ENV !== "production") return;
//     return {
//       plugins: [
//         new PrerenderSPAPlugin({
//           //网页包的路径将应用程序输出到prerender
//           staticDir: path.join(__dirname, "dist"),
//           //Routes to render 对应自己router
//           routes: ["/", "/home", "/blog", "/aboutMe", "/message"],
//           renderer: new Renderer({
//             inject: {
//               foo: "bar",
//             },
//             //渲染时显示浏览器窗口。对调试有用。
//             headless: false,
//             // // 在 main.js 中 document.dispatchEvent(new Event('render-event'))，两者的事件名称要对应上。
//             renderAfterDocumentEvent: "render-event",
//           }),
//         }),
//       ],
//     };
//   },
// };
